## Registered S3 method overwritten by 'httr':
## method from
## print.response rmutil
## Warning: package 'tseries' was built under R version 4.3.2
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
## Warning: package 'cowplot' was built under R version 4.3.2
## Warning: package 'devtools' was built under R version 4.3.2
## Loading required package: usethis
## Warning: package 'usethis' was built under R version 4.3.2
Crear una muestra aleatoria de tamaño 120
#primero leemos el excel y lo guardamos en un data frame en este caso :
Blackfriday=data.frame(read_xlsx("./Blackfriday.xlsx"))
#Despues establecemos el tamaño de la muestra y con ese tamaño usamos la funcion sample:
n=120
muestra=sample(1:nrow(Blackfriday),size=n,replace=FALSE)
#Finalmente relacionamos nuestra muestra con los datos obtenidos del excel:
datosfinales = Blackfriday[muestra, ]
datosfinalesvalores= datosproblema$Freq
nombres_porcentajes=c("Mujer","Hombre")
porcentajes <- (valores / sum(valores)) * 100
colores <- c("#3498db", "#e74c3c")
plot_ly(labels = nombres_porcentajes, values = porcentajes, type = "pie",
textinfo = "label+percent", text = datosproblema$Var1 , marker = list(colors = colores)) %>%
layout(title = list(font="Porcentajes Entre Hombre y Mujer"),
showlegend = FALSE, # Ocultar la leyenda
margin = list(l = 20, r = 0, b = 0, t = 30), # Ajustar márgenes
paper_bgcolor = "white", # Fondo blanco
plot_bgcolor = "white", # Fondo blanco
font = list(family = "Arial", size = 14), # Fuente y tamaño de texto
titlefont = list(size = 18), # Tamaño del título
annotations = list(text = "Fuente: Datos de ejemplo", showarrow = FALSE,
x = 0.8, y = -0.15)) # Nota de fuente## Warning: The titlefont attribute is deprecated. Use title = list(font = ...)
## instead.
Al ser una variable cualitativa no podemos obtener sus medidas de tendencia central, sin embargo como se vera mas a delante la usaremos para generar grupos de datos y asi hacer su respectivo analisis
valores= datosproblema$Freq
nombres_porcentajes=c("CITY A","CITY B","CITY C")
porcentajes <- (valores / sum(valores)) * 100
colores <- c("#BFCDFF", "#E4FFBF","#B8FFD9")
plot_ly(labels = nombres_porcentajes, values = datosproblema$Freq, type = "pie",
textinfo = "label+percent", text = datosproblema$Var1 , marker = list(colors = colores)) %>%
layout(title = list(font="Porcentajes de ciudades en la muestra"),
showlegend = FALSE, # Ocultar la leyenda
margin = list(l = 20, r = 0, b = 0, t = 30), # Ajustar márgenes
paper_bgcolor = "white", # Fondo blanco
plot_bgcolor = "white", # Fondo blanco
font = list(family = "Arial", size = 14), # Fuente y tamaño de texto
titlefont = list(size = 18), # Tamaño del título
annotations = list(text = "Fuente: Datos de ejemplo", showarrow = FALSE,
x = 0.8, y = -0.15)) # Nota de fuente## Warning: The titlefont attribute is deprecated. Use title = list(font = ...)
## instead.
datosproblema=datosfinales$Income
Media_Datos=median(datosproblema)
Moda=mfv(datosproblema)
Promedio=mean(datosproblema)
#hist(datosproblema)
g1 = ggplot(data = data.frame(datosproblema),mapping = aes(x = datosproblema)) +
geom_histogram(bins = 20,colour="white",fill="#FFEA89")+
labs(title = "Histograma income", y ="Cantidad") +
geom_vline(aes(xintercept= Promedio ,color ="MEDIA"),linetype = "dashed",linewidth = 0.5) +
geom_vline(aes(xintercept= Media_Datos,color = "MEDIANA"),linetype = "dashed",linewidth = 1) +
scale_color_manual(name = "Informacion",values = c(MEDIANA ="blue" ,MEDIA = "red",MODA ="purple"))
g1#boxplot(datosproblema, col="#BF89FF",xlab="Habitantes",ylab="Edad")
#stripchart(datosproblema, method = "jitter", pch = 19, add = TRUE, col = "blue")Ahora podrmos sacar las medidas de tendencia central
## la media de los datos es 13197.5
## El promedio de los datos es 12978.06
## los valores que mas se repiten o la moda es: 12289 15865
Esto significa que no hay un solo dato que se repita mas veces que los demas, esa es la razon de que aparezcan varios datos como moda
Tambien podemos ver su grafico de dispercion
Ahora bien teniendo en cuenta que las primeras dos son variables cualitativas vamos a hacer un pequeño analisis usando estas variables para agrupar los datos de la variable Income
Aca podemos ver una compraracion entre las medias de los income agrupados entre generos F Y M
MediEstado= table(datosfinales %>% group_by(Gender=Gender) %>% summarise(MediaAritmetica=mean(Income)))
barplot(MediEstado,
main="Comparacion entre medias ingresos", #C) Título principal
xlab="Agrupacion por generos", #D) Tíulo del eje X
ylab="", #E) Título del eje Y
legend = rownames(MediEstado),
ylim = c(0, 1.5),
col=c("#FFBEBE","#D7BEFF")
)Con la grafica enterior podemos ver que no existe una gran diferencia en la media de ingresos por generos
MedianaEstado= table(datosfinales %>% group_by(Gender=Gender) %>% summarise(MediaAritmetica=median(Income)))
barplot(MedianaEstado,
main="Comparacion entre mediana ingresos", #C) Título principal
xlab="Agrupacion por generos", #D) Tíulo del eje X
ylab="", #E) Título del eje Y
legend = rownames(MediEstado),
ylim = c(0, 1.5),
col=c("#EAFF8B","#BEFFF2")
)
Aasi como en la compaaracion anterior podemos ver que si separamos loss
daatos entre generos la diferencia es casi nula
ahora teniendo en cuenta que no hay mucha diferencia cuando se agrupa en generos intentemos agruparlos por ciudades
MediEstado= table(datosfinales %>% group_by(City_Category=City_Category) %>% summarise(MediaAritmetica=mean(Income)))
barplot(MediEstado,
main="Comparacion entre medias ingresos", #C) Título principal
xlab="Agrupacion por categoria de ciudad", #D) Tíulo del eje X
ylab="", #E) Título del eje Y
legend = rownames(MediEstado),
ylim = c(0, 1.5),
col=c("#FFBEBE","#FBFFAF","#AFFFC4")
)MedianEstado= table(datosfinales %>% group_by(City_Category=City_Category) %>% summarise(MediaAritmetica=median(Income)))
barplot(MedianEstado,
main="Comparacion entre mediana ingresos", #C) Título principal
xlab="Agrupacion por categoria de ciudad", #D) Tíulo del eje X
ylab="", #E) Título del eje Y
legend = rownames(MedianEstado),
ylim = c(0, 1.5),
col=c("#7B7E4E","#4E7E59","#7E4E4E")
)
Al igual que agrupandolo por generos podemos ver como al ser agrupadas
por categoria de ciudad los resultados dan casi igual lo cual nos
indicaria que la muestra tomada anteriormente se podria pensar que tiene
una distribucion nomrla o en su defecto muy similar a una distribuvion
normal ### Punto C primero cacularemos la media y desviacion estandar de
la poblacion general
## La media de la poblacion es: 9508.259
## La desviacion estandar de la poblacion es: 5001.657
Ahora calcularemos la media y desviacion estandar de la muestra
## La media de la muestra es: 9993.358
## La desviacion estandar de la muestra es: 5360.271
En situiaciones como estas el estimador es la MUESTRA, esto debido a que normalmente se desconocen todos los datos de l apoblacion, por lo cual se toma una muestra lo suficientemente grande para obtener los datos mas cercanos posibles desconociendo la totalidad de los datos de la poblacion
Ahora miraremos la probabilidad de que la variable media muestral sea mayor o igual que el valor de la poblacional.
z <- round(( mean(Blackfriday$Purchase) - mean(datosfinales$Purchase))/sd(datosfinales$Purchase),2)
probabilidad <- round(pnorm(q=z,mean = 0, sd=1,lower.tail = FALSE),1)
cat("la probabilidad de que la variable media muestral sea mayor o igual que el valor de la
poblacional es de :",(probabilidad*100),"%")## la probabilidad de que la variable media muestral sea mayor o igual que el valor de la
## poblacional es de : 50 %
Al no haber una inclinacion muy marcada o significativa en que la media muestral sea igual o mayor que la media poblacional se considera que los segos son muy bajos por no decir inexistentes
datosproblema=datosfinales$Purchase
Mediana_Datos=round(median(datosproblema),0)
Moda=mfv(datosproblema)
Promedio=round(mean(datosproblema),0)
sdi=round(sd(datosproblema),0)
#hist(datosproblema)
g1 = ggplot(data = data.frame(datosproblema),mapping = aes(x = datosproblema)) +
geom_histogram(bins = 20,colour="white",fill="#FFBCFD")+
labs(title = "Histograma variable PurchaseS", y ="Cantidad") +
#geom_vline(aes(xintercept= Promedio ,color ="MEDIA"),linetype = "dashed",linewidth = 1) +
#(aes(xintercept= Media_Datos,color = "MEDIANA"),linetype = "dashed",linewidth = 1) +
#scale_color_manual(name = "Informacion",values = c(MEDIANA ="#5DFF00" ,MEDIA = "#6E00FF")) +
stat_function(fun = dnorm, n = 10000, args = list(mean = Promedio, sd = sdi)) + ylab("") +
scale_y_continuous(breaks = NULL)
g1
Ahora calcularemos la courtosis :
curti=kurtosis(datosfinales$Purchase)
cat("la curtosis de la variable purchasae de la muestra aes: ",curti)## la curtosis de la variable purchasae de la muestra aes: 3.057671
En una distribución normal, la curtosis es 3. Un valor de curtosis muy cercano a cero, como 0.0069, indica que la distribución tiene colas más ligeras en comparación con una distribución normal
Ahora calcularemos la asimetria con la funcion skewness
datosproblema=datosfinales$Purchase
asimetria=skewness(datosproblema)
cat("la asimetria da :",asimetria)## la asimetria da : 0.08577722
Un sesgo de 0 indica una simetría perfecta en la distribución. Un valor cercano a cero, como 0.0847, sugiere una simetría relativamente buena en la distribución. Valores cercanos a cero indican que la distribución está más cerca de ser simétrica.
plot(datosfinales$Purchase, dnorm(datosfinales$Purchase, mean = mean(datosfinales$Purchase), sd = sd(datosfinales$Purchase)), type = "l",
ylim = c(0, 0.0001), ylab = "", lwd = 2, col = "red") x=dnorm(datosfinales$Purchase, mean = mean(datosfinales$Purchase), sd = sd(datosfinales$Purchase))
x## [1] 6.430839e-05 7.010608e-05 7.439491e-05 7.219513e-05 3.983398e-05
## [6] 6.748213e-05 6.863038e-05 6.052117e-05 6.929327e-05 2.805713e-05
## [11] 7.231322e-05 6.173723e-05 5.443746e-05 2.205384e-05 4.428188e-05
## [16] 5.367712e-05 4.632793e-05 1.175436e-05 1.253379e-05 3.690165e-05
## [21] 7.438640e-05 1.378535e-05 4.169219e-05 5.821189e-05 6.412150e-06
## [26] 4.793309e-05 3.129848e-05 7.354869e-05 4.248024e-05 6.210657e-05
## [31] 5.098477e-05 6.499493e-05 7.388164e-05 7.409963e-05 5.473989e-05
## [36] 6.952545e-05 7.385240e-05 7.379268e-05 7.042612e-05 4.924722e-05
## [41] 4.808167e-05 2.951911e-06 7.264300e-05 3.729134e-05 3.645394e-05
## [46] 3.632982e-05 7.430901e-05 5.117260e-05 5.729111e-05 6.247404e-05
## [51] 6.221094e-06 2.561963e-05 7.277772e-05 6.254293e-05 7.354386e-05
## [56] 4.947255e-05 7.104138e-05 6.168790e-05 6.448292e-05 3.890566e-05
## [61] 7.269044e-05 8.605669e-06 1.868049e-05 7.338323e-05 3.033603e-06
## [66] 7.100084e-05 5.525067e-05 2.959007e-05 4.825771e-05 7.245561e-05
## [71] 4.562920e-05 7.393059e-05 6.827900e-05 7.001648e-05 3.062528e-05
## [76] 5.217719e-05 4.329510e-05 2.994128e-05 5.233297e-05 6.381284e-05
## [81] 6.696160e-05 7.383911e-05 6.818348e-05 4.359785e-05 7.222164e-05
## [86] 1.097651e-05 1.448215e-05 7.131392e-05 6.508764e-05 7.358159e-05
## [91] 3.718506e-05 6.924920e-05 6.976686e-05 7.442449e-05 7.369377e-05
## [96] 4.718578e-05 7.188658e-05 2.258918e-06 7.174338e-05 6.748612e-05
## [101] 7.438672e-05 6.371174e-05 7.434069e-05 6.242573e-05 7.252392e-05
## [106] 1.360202e-05 7.362313e-05 5.149686e-05 6.081063e-05 7.381105e-05
## [111] 4.170294e-05 1.141554e-05 4.741025e-05 6.003718e-05 6.400840e-05
## [116] 7.335312e-05 3.835269e-05 6.344544e-05 4.447314e-05 4.500603e-05
En resumen, según los valores obtenidos, la distribución parece ser bastante simétrica (debido al sesgo cercano a cero), pero tiene colas más ligeras que las de una distribución normal, lo que indica una distribución platicúrtica. Sin embargo, es importante recordar que estos valores por sí solos no proporcionan una conclusión definitiva sobre la normalidad de la distribución
Se carga la información de la base de datos IMPORTANTE: Cambiar la ruta en la que tenga su archivo Blackfriday.xlsx en caso de que no la lea el archivo data <- data.frame(read_xlsx(“SU RUTA”))
data <- data.frame(read_xlsx("./Blackfriday.xlsx"))
### Se muestran dos formas de hacer el mismo procedimiento,
### primero, creando la función con los datos que se piden,
### segundo, usando una función que generá el nivel de confianza.
### PRIMERA FORMA DE GENERAR EL NIVEL DE CONFIANZA
### media = Media de la columna Purchase de los datos
data_purchase <- data$Purchase
media <- mean(data_purchase)
### z = Cuantil de la distribucion normal estandar
z <- 1.645
### nivel_confianza del 90% = 0.90
nivel_confianza <- 0.90
### n = La cantidad de datos en la columna Purchase
length(data$Purchase)## [1] 47734
## [1] 5001.657
desviacion <- sd(data$Purchase)
### error_estandar = Desviacion estandar de la muestra
error_estandar <- desviacion / sqrt(n)
### limite_inferior = Calculo del limite inferior
### limite_superior = Calculo del limite superior
limite_inferior <- media - (z * error_estandar)
limite_superior <- media + (z * error_estandar)
### Se muestra en un dataframe todos los datos
interval_m <- data.frame(n, media,nivel_confianza , desviacion, z, error_estandar, limite_inferior, limite_superior)
interval_conf <- data.frame(media, nivel_confianza, limite_inferior, limite_superior)
interval_conf### SEGUNDA FORMA DE GENERAR EL NIVEL DE CONFIANZA
### Se hace uso de la función t.test()
res <- t.test(x = data$Purchase, conf.level = 0.90)
res##
## One Sample t-test
##
## data: data$Purchase
## t = 415.34, df = 47733, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 90 percent confidence interval:
## 9470.603 9545.915
## sample estimates:
## mean of x
## 9508.259
El intervalo de confianza al 90% para el promedio de la variable PURCHASE, se encuentra entre [9470.603, 9545.915].
Efectivamente la media poblacional cae en el intervalo, pues la media de la muestra es 9508.259 y el intervalo es [9470.603, 9545.915].
Se muestran dos formas de hacer el mismo procedimiento, primero, creando la función con los datos que se piden, segundo, usando una función que generá el nivel de confianza.
### Volvemos a inicializar los datos
data <- data.frame(read_xlsx("./Blackfriday.xlsx"))
### Se muestran en la columna Purchase únicamente los valores > 5000
data <- data %>% filter(Purchase > 5000)
### media = Media de la columna Purchase de los datos
data_purchase <- data$Purchase
media <- mean(data_purchase)
### z = Cuantil de la distribucion normal estandar
z <- 1.960
### nivel_confianza del 95% = 0.95
nivel_confianza <- 0.95
### n = La cantidad de datos en la columna Purchase
length(data$Purchase)## [1] 38915
## [1] 3869.58
desviacion <- sd(data$Purchase)
### error_estandar = Desviacion estandar de la muestra
error_estandar <- desviacion / sqrt(n)
### limite_inferior = Calculo del limite inferior
### limite_superior = Calculo del limite superior
limite_inferior <- media - (z * error_estandar)
limite_superior <- media + (z * error_estandar)
### Cargar en un dataframe los datos necesarios para el calculo
interval_m <- data.frame(n,media,nivel_confianza,desviacion,z,error_estandar,limite_inferior,limite_superior)
interval_conf <- data.frame(media, nivel_confianza, limite_inferior, limite_superior)
interval_conf### SEGUNDA FORMA DE GENERAR EL NIVEL DE CONFIANZA
### Se hace uso de la función t.test()
res <- t.test(x = data$Purchase, conf.level = 0.95)
res##
## One Sample t-test
##
## data: data$Purchase
## t = 568.05, df = 38914, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 11104.31 11181.21
## sample estimates:
## mean of x
## 11142.76
El intervalo de confianza al 95% para la proporcion de ventas superiores a US$5000 es de [11104.31, 11181.21]; además la proporcion poblacional se encuentra en este intervalo
La hipotesis nula se plantea como: u es menor o igual a el valor real encontrado en la población
La hipotesis alternativa se plantea como: u es mayor a el valor real encontrado en la población
## [1] 9508.259
## [1] 5001.657
## [1] 9993.358
## [1] 5360.271
## [1] 0.8392467
El valor de 0.8392467 cae dentro de la región de aceptación de la hipotesis nula, por lo tanto se puede decir que el el valor u es menor o igual al valor real encontrado en la población, por lo tanto se puede decir que las personas compran menos que el valor promedio.
muestraP3 <- subset(Blackfriday,select=c(Gender,Purchase))
#tamaño de la muestrs 120
n=120
#se extraen los datos de la población femenina
PoblacionF <- subset(muestraP3,Gender=="F")
muestraF <- sample(PoblacionF$Purchase,size=n,replace=FALSE,prob=NULL)
comprasPromF <- mean(PoblacionF$Purchase)
PromMuestraF <- mean(muestraF)
sdcompraspromF <- sd(PoblacionF$Purchase)
sdPromMuestraF <- sd(muestraF)
#se extraen los datos de la población masculina
PoblacionM <- subset(muestraP3,Gender=="M")
muestraM <- sample(PoblacionM$Purchase,size=n,replace=FALSE,prob=NULL)
ComprasPromM <- mean(PoblacionM$Purchase)
PromMMuestra <- mean(muestraM)
sdcompraspromM <- sd(PoblacionM$Purchase)
sdPromMuestraM <- sd(muestraM)Creamos los filtros para las muestras de genero por Masculino y Femenino. En el dataframe se encuentran como masculino M y femenino F obtenemos tambien el promedio y la desviación estandar de cada muestra.
Estos son los datos para la poblacion y muestra Femenina
## La muestra femenina es: 19585 11820 5711 15687 5760 17662 9739 12154 2162 5524 8144 14218 -6533 7345 6004 10925 6587 12333 12024 11175 5681 8092 26275 10968 8499 10111 7656 9297 8440 5260 6768 3118 11969 14942 3321 16712 12516 14705 6281 4084 6074 1551 5672 11589 17283 -686 11979 17168 6038 8050 11000 14631 4881 13287 12083 11961 13525 10523 11228 8125 10239 7708 12167 10099 2238 9024 -4069 14849 8848 -3589 11512 19068 10904 13933 15979 10782 12087 10340 10081 10379 10542 9888 7961 13875 6963 13181 14584 3184 20447 6354 12222 14277 7459 10165 12801 6705 20163 -256 12404 1125 10114 2709 4283 7616 6938 11770 8114 5185 18458 15281 8476 5341 11124 15717 11818 11353 7181 9250 8953 11983
#cat("La población femenina es:",PoblacionF$Purchase)
cat("\nEl promedio de la población femenina es:",comprasPromF)##
## El promedio de la población femenina es: 9506.636
##
## El promedio de la muestra femenina es: 9724.75
##
## La desviación estandar de la población femenina es: 5015.093
##
## La desviación estandar de la muestra femenina es: 5143.279
Estos son los datos para la poblacion y muestra Masculina
## La muestra masculina es: 13761 9542 18549 7291 7885 11621 -3255 10942 5664 3690 16094 16187 7149 8163 19805 12102 10786 20167 2043 13292 11606 7998 22325 13350 14147 4973 15033 12940 14177 7140 9078 -6132 11285 9642 12721 7230 7760 3302 -4024 13315 12445 9032 4667 11504 21910 6618 16308 4778 9068 13766 5727 12590 2267 10286 9463 4863 3095 8510 1920 11168 12411 10219 18781 11732 5547 17999 276 13818 9902 5440 15703 284 14930 8469 18788 11799 12626 8546 5240 3315 4032 15500 10962 4678 1966 11138 8129 4886 6519 10431 1319 8490 17967 6900 10667 7827 13280 4672 3118 13915 4599 13031 7069 7708 9827 17951 9969 15105 2440 6191 2650 13621 4825 11108 10104 4556 6836 15406 13617 10223
#cat("La población femenina es:",PoblacionF$Purchase)
cat("\nEl promedio de la población masculina es:",ComprasPromM)##
## El promedio de la población masculina es: 9508.792
##
## El promedio de la muestra masculina es: 9486.55
##
## La desviación estandar de la población masculina es: 4997.311
##
## La desviación estandar de la muestra masculina es: 5376.969
La hipotesis que platearemos es si hay diferencia entre ambas poblaciones por lo tanto se plantea que H0:μ1-μ2 != media
la hipotesis alternativa se plantearia como H1:μ1-μ2 = media
z3B <- ((PromMMuestra-PromMuestraF))/(sqrt(((sdPromMuestraM*sdPromMuestraM)/120)+((sdPromMuestraF*sdPromMuestraF)/120)))
z3B## [1] -0.3506827
## [1] 0.3629132
Con un nivel de significancia del 5% se puede decir que la diferencia entre el promedio de gastos masculino y el promedio de compras femenino es diferente por lo tanto la hipotesis H0 es correcta y se puede decir que la
Calcularemos un intervalo de confianza de una cola para las varianzas de la muestra de compras masculino y femenino.
if (!require('devtools')) install.packages('devtools')
devtools::install_github('fhernanb/stests', force=TRUE)## Downloading GitHub repo fhernanb/stests@HEAD
##
## ── R CMD build ─────────────────────────────────────────────────────────────────
##
checking for file 'C:\Users\alejo\AppData\Local\Temp\Rtmp2nVTiy\remotes5d3066d43bc2\fhernanb-stests-61c62f1/DESCRIPTION' ...
✔ checking for file 'C:\Users\alejo\AppData\Local\Temp\Rtmp2nVTiy\remotes5d3066d43bc2\fhernanb-stests-61c62f1/DESCRIPTION'
##
─ preparing 'stests': (837ms)
## checking DESCRIPTION meta-information ...
✔ checking DESCRIPTION meta-information
##
─ checking for LF line-endings in source and make files and shell scripts
##
─ checking for empty or unneeded directories
## Omitted 'LazyData' from DESCRIPTION
##
─ building 'stests_0.1.0.tar.gz'
##
##
## Installing package into 'C:/Users/alejo/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
##
## X-squared test for variance
##
## data: c(sdcompraspromM, sdcompraspromF)
## X-squared = 158.11, df = 1, p-value < 2.2e-16
## alternative hypothesis: true variance is not equal to 1
## 95 percent confidence interval:
## 31.47096 160993.26013
## sample estimates:
## variance of x
## 158.1065
Tenemos como hipotenis nula que la igualdad de las varianzas de las compras de hombres y mujeres. H0:sμ1 = sμ2 como hipotesis alternativa se tiene que son diferentes. H1:sμ1 != sμ2
PruebaHipVarianzas <- ((sdcompraspromM*sdcompraspromM)/(sdcompraspromF*sdcompraspromF))
PruebaHipVarianzas## [1] 0.992921
## [1] 1.35
Con los valores del valor critico que equivale a 1.35 y el valor del estadistico de prueba equivale a 0.99291 se concluye que como el estadistico es menor que el valor critico se rechaza la hipotesis nula. Por lo tanto la hipotesis alternativa es verdadera entonces la varianza de ambos son diferentes